import { json, error } from '@sveltejs/kit'; import { createAirtableServices } from '$lib/airtable'; import type { RequestHandler } from './$types'; const apiKey = process.env.VITE_AIRTABLE_API_KEY; const baseId = process.env.VITE_AIRTABLE_BASE_ID; if (!apiKey || !baseId) { throw new Error('Airtable API key and base ID must be configured'); } const airtable = createAirtableServices(apiKey, baseId); // GET /api/users/[id] - Get a specific user export const GET: RequestHandler = async ({ params }) => { try { const { id } = params; const record = await airtable.users.getRecord(id); const user = { id: record.id, ...record.fields }; return json(user); } catch (err) { console.error('Error fetching user:', err); throw error(404, 'User not found'); } }; // PUT /api/users/[id] - Update a user export const PUT: RequestHandler = async ({ params, request }) => { try { const { id } = params; const userData = await request.json(); const record = await airtable.users.updateRecord(id, userData); const user = { id: record.id, ...record.fields }; return json(user); } catch (err) { console.error('Error updating user:', err); throw error(500, 'Failed to update user'); } }; // DELETE /api/users/[id] - Delete a user export const DELETE: RequestHandler = async ({ params }) => { try { const { id } = params; await airtable.users.deleteRecord(id); return json({ success: true }); } catch (err) { console.error('Error deleting user:', err); throw error(500, 'Failed to delete user'); } };